package com.ruoyi.web.controller.util;

/**
 * @ClassName LongLatUtils
 * @Description TODO
 * @Author tyc@yanyu
 * @Date 2018/12/13 0013 11:50
 **/
public class LongLatUtils {
    /**
     *
     * @param lon 经度
     * @param lat 纬度
     * @param raidus  半径（米为单位）
     * @return
     */
    public static Double[] getAroud(Double lon,Double lat,int raidus ){
        Double latitude = lat;
        Double longitude = lon;

        Double degree = (24901 * 1609) / 360.0;
        double raidusMile = raidus;

        Double dpmLat = 1 / degree;
        Double radiusLat = dpmLat * raidusMile;
        Double minLat = latitude - radiusLat;
        Double maxLat = latitude + radiusLat;

        Double mpdLng = degree * Math.cos(latitude * (Math.PI / 180));
        Double dpmLng = 1 / mpdLng;
        Double radiusLng = dpmLng * raidusMile;
        Double minLng = longitude - radiusLng;
        Double maxLng = longitude + radiusLng;
        return new Double[] { minLat, minLng, maxLat, maxLng };
    }
}
